@Haggard
2年前 提问
1个回答

拥塞控制的方法有哪些

delay
2年前

拥塞控制的方法有以下四种:

  • TCP拥塞控制方法:使用最广泛的基于终端的拥塞控制方法是TCP协议的拥塞控制算法。TCP是目前在互联网中使用最广泛的传输协议。广义的来讲,TCP拥塞控制的概念是每个源端判断当前网络中有多少可用容量,从而知道它可以安全完成传送的分组数。一旦某个源端有这么多分组在传送,它用确认(ACK)信号的到达表明它有一个分组已经离开网络,因而它不需要增加拥塞级别就可以安全地向网络中发送一个新的分组,通过使用确认信息来协调分组的传送,TCP称为自同步(self-clocking)的。

  • ECN方法:由于目前TCP使用丢包作为隐式的拥塞指示信号,即发送方检测到重复的ACK或者重传超时的时候认为发生拥塞,这种机制在用于检测拥塞时开销较大,需要等待较长的周期才能发现拥塞,降低了拥塞控制的效率。为此,显示拥塞通告算法ECN可以减少由于不比要的丢包产生的延时,其主要思想是通过路由器对拥塞的判断,显示的设置拥塞标记,发送端主机通过网络中返回的带拥塞反馈标记的包发现拥塞。

  • XCP和VCP方法:随着互联网的发展,端到端带宽时延积逐渐增大,传统的TCP算法逐渐暴露出它的问题。TCP的加式增加相对于网络带宽显得过于缓慢,往往不能充分地利用链路资源,因此,不少算法都针对大带宽时延积网络提出MIMD(积式增加积式减少),提高慢启动速度等方案,这些算法一方面针对大带宽时延积网络做出了优化,但另一方面也是去了对小带宽时延积网络的适应性。

  • 链路方法:拥塞控制的链路方法假定网络传输流的端设备对丢包和标记做出响应,并调整自身的吞吐量,这种假设是与TCP的拥塞控制相对应的。传统网络设备采用PQM(被动队列管理)来管理网络中间节点数据包的排队,它采用FIFO的Drop-tail丢包策略,仅在输入溢出时进行丢包,这种方式容易产生Lock-out(锁外),Full-queues(满列)和Global synchronization(全局同步)等问题。虽然采用Random-drop和Drop-from丢包策略可以避免Lock-out问题,但是却无法解决满队列和全局同步引起的震荡问题。为了缓解上面提到的这些问题,出现了AQM(主动队列管理)技术。AQM是路由器在队列充满之前丢包,这样端节点便能在队列溢出前对拥塞做出反应,从而达到避免拥塞的目的。以AQM技术为基础又进一步提出了一些改进和优化方法。